import request from "@/utils/request";

/**
 * 用户统计信息
 */
export interface GameUserStatistics {
  /** 用户ID */
  userId: number;
  /** 总游戏时长（秒） */
  totalPlayTime: number;
  /** 总游戏数 */
  totalGames: number;
  /** 最近游戏ID */
  recentGameId?: number;
  /** 最近游戏名称 */
  recentGameName?: string;
  /** 最近游戏时间 */
  recentPlayTime?: string;
  /** 最常玩游戏ID */
  favoriteGameId?: number;
  /** 最常玩游戏名称 */
  favoriteGameName?: string;
  /** 最常玩游戏时长 */
  favoriteGamePlayTime?: number;
  /** 平均评分 */
  averageRating?: number;
  /** 成就数量 */
  achievementCount?: number;
}

/**
 * 获取用户统计信息
 * 
 * @param userId 用户ID（可选）
 * @returns 用户统计信息
 */
export function getUserStatistics(userId?: number) {
  return request<any, GameUserStatistics>({
    url: '/api/v1/game/statistics/user',
    method: 'get',
    params: userId ? { userId } : undefined
  });
}

/**
 * 获取用户每日游戏时长
 * 
 * @param userId 用户ID（可选）
 * @returns 每日游戏时长数据
 */
export function getDailyPlayTime(userId?: number) {
  return request<any, Array<{ date: string, playTime: number }>>({
    url: '/api/v1/game/statistics/daily-play-time',
    method: 'get',
    params: userId ? { userId } : undefined
  });
}

/**
 * 获取用户游戏时段分布
 * 
 * @param userId 用户ID（可选）
 * @returns 时段分布数据
 */
export function getHourlyDistribution(userId?: number) {
  return request<any, Array<{ hour: number, playTime: number }>>({
    url: '/api/v1/game/statistics/hourly-distribution',
    method: 'get',
    params: userId ? { userId } : undefined
  });
}

/**
 * 更新用户统计信息
 * 
 * @param userId 用户ID（可选）
 * @returns 是否成功
 */
export function updateUserStatistics(userId?: number) {
  return request<any, boolean>({
    url: '/api/v1/game/statistics/update',
    method: 'post',
    params: userId ? { userId } : undefined
  });
} 